function ajax_get(options) {
    let xhr = new XMLHttpRequest()
    // url不能为空
    if (!options.url) {
        alert('地址不能为空')
        return false
    }
    // 处理函数
    if (options.query) {
        // 把对象转成查询字符串
        let str = '?'
        // 遍历对象
        for (let key in options.query) {
            str += `${key}=${options.query[key]}`
            str += '&'
        }
        str = str.slice(0, -1)
        xhr.open('get', options.url + str)
    } else {
        xhr.open('get', options.url)
    }
    xhr.send()
    xhr.onreadystatechange = () => {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                options.success && options.success(xhr.response)
            } else {
                options.error && options.error()
            }
        }
    }
}


function ajax_post(options) {
    let xhr = new XMLHttpRequest()
    // url不能为空
    if (!options.url) {
        alert('地址不能为空')
        return false
    }
    xhr.open('post', options.url)
    xhr.setRequestHeader('count-type', 'application/x-www-form-urlencoded')
    // 处理函数
    if (options.query) {
        let str = ''
        // 遍历对象
        for (let key in options.query) {
            str += `${key}=${options.query[key]}`
            str += '&'
        }
        str = str.slice(0, -1)
        xhr.send(str)

    } else {
        xhr.send(null)
    }
    xhr.onreadystatechange = () => {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                options.success && options.success(xhr.response)
            } else {
                options.error && options.error()
            }
        }
    }
}


function gAjax(options) {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest()
        // url不能为空
        if (!options.url) {
            alert('地址不能为空')
            return false
        }
        // 处理函数
        if (options.query) {
            // 把对象转成查询字符串
            let str = '?'
            // 遍历对象
            for (let key in options.query) {
                str += `${key}=${options.query[key]}`
                str += '&'
            }
            str = str.slice(0, -1)
            xhr.open('get', options.url + str)
        } else {
            xhr.open('get', options.url)
        }
        xhr.send()
        xhr.onreadystatechange = () => {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    resolve(xhr.response)
                } else {
                    reject()
                }
            }
        }
    })
}


function pAjax(options) {
    return new Promise((resolve, reject) => {
        let xhr = new XMLHttpRequest()
        // url不能为空
        if (!options.url) {
            alert('地址不能为空')
            return false
        }
        xhr.open('post', options.url)
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
        // 处理函数
        if (options.query) {
            let str = ''
            // 遍历对象
            for (let key in options.query) {
                str += `${key}=${options.query[key]}`
                str += '&'
            }
            str = str.slice(0, -1)
            xhr.send(str)

        } else {
            xhr.send(null)
        }
        xhr.onreadystatechange = () => {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    // options.success && options.success(xhr.response)
                    resolve(xhr.response)
                } else {
                    // options.error && options.error()
                    reject()
                }
            }
        }
    })
}